home *** CD-ROM | disk | FTP | other *** search
- var originalCssClasses = new Array();
- var originalCssClassesInitialized = new Array();
- function NOF_isRequired( formField ) {
- if ( formField.type != undefined ) {
- if ( (formField.type).indexOf("checkbox") != -1 ) {
- if ( formField.checked ) {
- return true;
- }
- } else if ( (formField.type).indexOf("radio") != -1 ) {
- if ( formField.checked ) {
- return true;
- }
- } else if ( (formField.type).indexOf("select") != -1 ) {
- for ( var i = 0; i < formField.length; i++ ) {
- if ( formField[ i ].selected && formField[ i ].value != "" ) {
- return true;
- }
- }
- } else {
- if ( formField.value != null && formField.value != "" ) {
- return true;
- }
- }
- } else {
- if ( formField.length > 1 ) {
- for ( var i = 0; i < formField.length; i++ ) {
- if ( (formField[ i ].type).indexOf("select") != -1 ) {
- if ( formField[ i ].selected && formField[ i ].value != "" ) {
- return true;
- }
- }
- else {
- if ( formField[ i ].checked ) {
- return true;
- }
- }
- }
- } else {
- if ( formField[ 0 ].selected ) {
- return true;
- }
- }
- }
- return false;
- }
- function NOF_isEmailAddress( formField ) {
- var emailRe = /^(\w[-\w\.]*)?\w(@|%40)\w([\-\.]?\w)*\.[a-z]{2,5}$/i;
- return ( ( formField.value != "" ) ? ( NOF_isRequired( formField ) && emailRe.test( formField.value ) ) : true );
- }
- function NOF_isDomainName( formField ) {
- var domainRe = /^\w([\-\.]?\w)*\.[a-z]{2,5}$/i;
- return ( ( formField.value != "" ) ? ( NOF_isRequired( formField ) && domainRe.test( formField.value ) ) : true );
- }
- function NOF_isNumber( formField ) {
- var numberRe = /^\d+(\.?\d+)*$/;
- return ( ( formField.value != "" ) ? (NOF_isRequired( formField ) && numberRe.test( formField.value ) ) : true );
- }
- function NOF_isInRange( formField, min, max ) {
- var value = NOF_isRequired( formField ) ? parseFloat( formField.value ) : NaN;
- var minValue = parseFloat( min );
- var maxValue = parseFloat( max );
- return ( ( formField.value != "" ) ? (!isNaN( value ) && value >= minValue && value <= maxValue ) : true );
- }
- function NOF_isLengthInRange( formField, min, max ) {
- return ( ( formField.value != "" ) ? (NOF_isRequired( formField ) && formField.value.length >= min && formField.value.length <= max ) : true );
- }
- function NOF_isPhoneNumber( formField, mask ) {
- var newPhoneNumber = "";
- if ( formField.value == "" ) { return true; }
- for ( var i = 0; i < mask.length; i++ ) {
- if ( mask.charAt(i).toLowerCase() == "d" ) {
- if ( i < formField.value.length ) {
- newPhoneNumber = newPhoneNumber + formField.value.charAt(i);
- }
- else {
- newPhoneNumber = newPhoneNumber + mask.charAt(i);
- }
- }
- else {
- newPhoneNumber = newPhoneNumber + mask.charAt(i);
- }
- }
- return ( NOF_isRequired( formField ) && ( newPhoneNumber == formField.value ) );
- }
- function NOF_isValidCreditCard( formField, cardType ) {
- if ( formField.value == "" ) { return true; }
- var ccType = cardType.toLowerCase();
- var ccNumber = NOF_isRequired( formField ) ? formField.value : "";
- var ccNumberLength = ccNumber.length;
- var firstChar = ccNumber.charAt( 0 );
- var secondChar = ccNumber.charAt( 1 );
- if ( ccType == "visa" ) {
- return ( ( ccNumberLength == 16 || ccNumberLength == 13 ) && firstChar == "4" );
- }
- else if ( ccType == "mastercard" ) {
- return ( ccNumberLength == 16 && firstChar == "5" && parseInt( secondChar ) >= 1 && parseInt( secondChar ) <= 5 );
- }
- else if ( ccType == "american express" ) {
- return ( ccNumberLength == 15 && firstChar == "3" && ( secondChar == "4" || secondChar == "7" ) );
- }
- else if ( ccType == "discover" ) {
- return ( ccNumberLength == 16 && ccNumber.substring( 0, 4 ) == "6011" );
- }
- return false;
- }
- function NOF_isValidDate( formField, mask ) {
- if ( formField.value == "" ) { return true; }
- var dateParts = new Array();
- var currDate = new Date();
- var currYear = currDate.getYear();
- var strDate = NOF_isRequired( formField ) ? formField.value : "";
- var delimitationChar = "/";
- var monthMask = "mm", dayMask = "dd", yearMask = "yyyy";
- var monthPos = 0, dayPos = 1, yearPos = 2;
- if ( mask.substring(0,1).toLowerCase() == "m" ) {
- var re = new RegExp("([mM]{2,3})([\/\s\-\|\.])([dD]{2})([\/\s\-\|\.])([yY]{4}|[yY]{2})");
- var m = re.exec(mask);
- if (m == null) {
- return false;
- } else {
- if ( m.length == 6 ) {
- delimitationChar = m[2];
- if ( delimitationChar == m[4] ) {
- monthMask = m[1];
- dayMask = m[3];
- yearMask = m[5];
- }
- else {
- }
- }
- else {
- }
- }
- }
- else if ( mask.substring(0,1).toLowerCase() == "d" ) {
- var re = new RegExp("([dD]{2})([\/\s\-\|\.])([mM]{2,3})([\/\s\-\|\.])([yY]{4}|[yY]{2})");
- var m = re.exec(mask);
- monthPos = 1;
- dayPos = 0;
- yearPos = 2;
- if (m == null) {
- alert("No match");
- } else {
- if ( m.length == 6 ) {
- delimitationChar = m[2];
- if ( delimitationChar == m[4] ) {
- dayMask = m[1];
- monthMask = m[3];
- yearMask = m[5];
- }
- else {
- }
- }
- else {
- }
- }
- }
- else {
- }
- if ( currYear.toString().length < 4 ) {
- currYear = currYear + 1900;
- }
- if ( strDate.indexOf( delimitationChar ) > 0) {
- dateParts = strDate.split( delimitationChar );
- if ( dateParts.length != 3 ) {
- return false;
- }
- for ( var i = 0; i < dateParts.length; i++ ) {
- if ( isNaN( dateParts[ i ] ) ) {
- return false;
- }
- }
- var month = parseInt( dateParts[ monthPos ], 10);
- if ( month < 1 || month > 12 ) {
- return false;
- }
- var day = parseInt( dateParts[ dayPos ], 10);
- if ( day < 1 || day > 31 ) {
- return false;
- }
- var year = parseInt( dateParts[ yearPos ], 10);
- if ( yearMask.length == 2 ) {
- if ( dateParts[ yearPos ].length != 2 ) {
- return false;
- }
- }
- else {
- if ( year < currYear - 200 || year > currYear + 200 ) {
- return false;
- }
- }
- return true;
- }
- return false;
- }
- function NOF_validateForm( formObj, validationInfo, showAllErrors, errorOutput, errMessage ) {
- var errMsg = "";
- var fieldLabelId;
- var fieldId;
- if ( originalCssClassesInitialized[formObj.name] == null )
- {
- originalCssClassesInitialized[formObj.name] = false;
- }
- if ( originalCssClasses[formObj.name] == null )
- {
- originalCssClasses[formObj.name] = new Array;
- }
- if ( !originalCssClassesInitialized[formObj.name] ) {
- for ( var elementName in validationInfo ) {
- fieldId = NOF_getElementId( formObj.elements[ elementName ] );
- fieldLabelId = NOF_getElementLabelObj( fieldId );
- originalCssClasses[formObj.name][ elementName ] = new Array();
- originalCssClasses[formObj.name][ elementName ][ "label" ] = new Array();
- for ( var i = 0; i < fieldLabelId.length; i++ ) {
- originalCssClasses[formObj.name][ elementName ][ "label" ][ i ] = NOF_getElementProperty( fieldLabelId[ i ], "className" );
- }
- originalCssClasses[formObj.name][ elementName ][ "field" ] = NOF_getElementProperty( fieldId, "className" );
- }
- originalCssClassesInitialized[formObj.name] = true;
- }
- else {
- for ( var i in originalCssClasses[formObj.name] ) {
- fieldId = NOF_getElementId( formObj.elements[ i ] );
- fieldLabelId = NOF_getElementLabelObj( fieldId );
- for ( var j = 0; j < fieldLabelId.length; j++ ) {
- NOF_setElementProperty( fieldLabelId[j], "className", originalCssClasses[formObj.name][ i ][ "label" ][ j ] );
- }
- NOF_setElementProperty( fieldId, "className", originalCssClasses[formObj.name][ i ][ "field" ] );
- }
- }
- for ( var i in validationInfo ) {
- var errorFound = false;
- for ( var j = 0; j < validationInfo[ i ].length; j++ ) {
- var validationRecord = validationInfo[ i ][ j ];
- var functionName = validationRecord[ 0 ];
- var functionArgs = validationRecord[ 1 ];
- var errorMessage = validationRecord[ 2 ];
- var errorLabelCss = validationRecord[ 3 ];
- var errorFieldCss = validationRecord[ 4 ];
- if ( functionArgs.length
- ? eval( "!" + functionName + "(formObj.elements['" + i + "'],'" + functionArgs.join("','") + "')" )
- : eval( "!" + functionName + "(formObj.elements['" + i + "'])") ) {
- errorFound = true;
- errMsg += "\n" + errorMessage;
- fieldId = NOF_getElementId( formObj.elements[ i ] );
- fieldLabelId = NOF_getElementLabelObj( fieldId );
- for ( var k = 0; k < fieldLabelId.length; k++ ) {
- fieldLabelId[k].className = errorLabelCss;
- NOF_setElementProperty( fieldLabelId[j], "className", errorLabelCss );
- }
- NOF_setElementProperty( fieldId,"className", errorFieldCss );
- }
- if ( errorFound && !showAllErrors ) {
- break;
- }
- }
- }
- if ( errMsg != "" ) {
- if ( errMessage == null || errMessage == "" ) {
- errMessage = "";
- } else {
- errMessage = errMessage + "\n";
- }
- if ( errorOutput == null || errorOutput == "" ) {
- alert( errMessage + errMsg );
- } else {
- NOF_setElementProperty( errorOutput, "innerHTML", (errMessage + errMsg).split("\n").join("<BR>") );
- }
- return false;
- } else {
- if ( errorOutput != null || errorOutput != "" ) {
- NOF_setElementProperty( errorOutput, "innerHTML", "" );
- }
- }
- return true;
- }
- function NOF_getElementId( element ) {
- if ( element.id == undefined ) {
- if ( element.length > 1 && element[ 0 ] != undefined ) {
- return ( element[ 0 ].id != undefined ) ? element[ 0 ].id : "";
- }
- return "";
- }
- return element.id;
- }
- function NOF_getElementProperty( element, property ) {
- if ( typeof element != "string" ) {
- if ( element.property != undefined ) {
- return eval("element." + property);
- } else {
- return "";
- }
- } else {
- if ( document.getElementById ) {
- if ( document.getElementById( element ) != null ) {
- return eval( "document.getElementById('" + element + "')." + property );
- }
- } else {
- if ( document.layers[ element ] != undefined ) {
- }
- }
- }
- }
- function NOF_getElementLabelObj( element ) {
- var labelArray = new Array();
- if ( element != "" ) {
- if ( document.getElementById ) {
- if ( document.getElementById( element ) != null ) {
- for ( var i = 0; i < document.getElementsByTagName( "label" ).length; i++ ) {
- if ( document.getElementsByTagName( "label" )[ i ].htmlFor == document.getElementById( element ).id ) {
- labelArray[ labelArray.length ] = document.getElementsByTagName( "label" )[ i ];
- }
- }
- }
- } else {
- alert(element + " : " + document.layers[ element ]);
- if ( document.layers[ element ] != undefined ) {
- alert('NOF_getElementLabelObj_: ' + document.ids[element]);
- }
- }
- }
- return labelArray;
- }
- function NOF_setElementProperty( element, property, value ) {
- if ( document.getElementById ) {
- if ( document.getElementById( element ) != null ) {
- eval( "document.getElementById('" + element + "')." + property + "= value;" );
- }
- } else {
- if ( document.layers[ element ] != undefined ) {
- if ( property == "innerHTML" ) {
- with ( document.layers[ element ].document ) {
- open();
- write( "<font class='lbErr'>" + value + "</font>" );
- close();
- }
- }
- }
- }
- }
-
-